# coding : utf-8
import automationframework

automationframework.sys.path.append(automationframework.os.getcwd() + '/automationframework')
import global_configure  # 导入非同一路径下包方式


class DataRead:

    @staticmethod
    # staticmethod 静态方法修饰符，如果不加，在调用此方法的时候必须在类的前面加()，而且有了staticmethod修饰符后，def就不需要加self
    # 获取Excel工作簿名称
    def get_excel_sheet_name(file_name):
        excel_data = automationframework.xlrd.open_workbook(file_name)
        return excel_data.sheet_names()

    @staticmethod
    # 检查测试用例文件是否存在
    def check_case_file(file_name):
        # file_path = os.getcwd() + '/static/automationtestcase/' + str(file_name)  # 本地开启
        # file_path = os.getcwd() + '/automationserver/automationtestcase/' + str(file_name) #djngo服务开启
        file_path = automationframework.os.getcwd() + '/static/automationtestcase/' + str(file_name)  # djngo服务开启
        if automationframework.os.path.exists(file_path):  # 判断是否存在该测试用例文件
            return True
        else:
            return False

    @staticmethod
    # 获取Excel工作薄名 runcasetype值：app interface web
    def gain_shell_name(run_case_type):
        if run_case_type == 'app':
            return ['appdeviceinfo', 'appfuncase']  # 若有配置表格,第一个必须是配置表格
        elif run_case_type == 'interface':
            return ['interfacecase']
        elif run_case_type == 'web':
            return ['browserinfo', 'browserfuncase']
        else:
            pass

    @staticmethod
    # 读取Excel数据
    def read_case_file(file_name, sheel_name):
        # case_file_path = '/Volumes/Software/Personal/Git_Project/Pycharm_Project/automationframework/automationframework/static/automationtestcase/' + str(file_name)  # 测试环境地址
        case_file_path = automationframework.os.getcwd() + '/static/automationtestcase/' + str(file_name)  # Djngo环境地址
        open_excel_case = automationframework.xlrd.open_workbook(case_file_path)  # 打开Excel 文件
        case_sheel = open_excel_case.sheet_by_name(sheel_name)  # 读取工作簿
        case_nows = case_sheel.nrows  # 读取Excel总行数
        case_column = case_sheel.ncols  # 读取Excel总列数
        return case_nows, case_column, case_sheel

    @staticmethod
    # 连接数据库
    def save_database():
        connect_mysql = global_configure.ConfigureFile().get_configure_file('mysql', '')
        mysql_cursor = connect_mysql.cursor()  # 获取游标
        return mysql_cursor, connect_mysql  # 执行语句用mysql_cursor，关闭和提交 由返回connect_mysql 去控制 提交和关闭


if __name__ == "__main__":
    pass
